1
תגובות

שאלה בקשר SUBSTR

פתח pol292 ,
הקוד:
private static function htmlEasyCode( $string )
    {
        $arr = array( ) ;
        $started = false ;
        $count = 0 ;
        for ( $i = 0 ; $i < strlen( $string ) ; $i++ )
        {

            if ( !$started && $string[ $i ] == '{' && $string[ $i + 1 ] == '%' )
            {
                $arr[ $count ][ 'start' ] = $i;
                $started = true ;echo $i."=>";
            } elseif ( $started && $string[ $i ] == '%' && $string[ $i + 1 ] == '}' )
            {
echo $i.",";                $arr[ $count ][ 'ended' ] = $i ;
                $count++ ;
                $started = false ;
            }
        }
        for ( $i = 0 ; $i < sizeof( $arr ) ; $i++ )
        {
            if ( isset( $arr[ $i ][ 'ended' ] ) )
                $arr[ $i ] = substr( $string , $arr[ $i ][ 'start' ] , $arr[ $i ][ 'ended' ] ) ;
        }
        print_r( $arr ) ;

    }

דוגמה לקוד HTML:
{% p %}<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
 </head>

<body>
{% x %}
    </body>
</html>
{% yyy %}

משקורה כשאני מריץ את זה הפלט יוצא:
0=>5,321=>326,352=>359,
Array ( [0] => {% p [1] => {% x %} {% yyy %} [2] => {% yyy %} )

אני מנשה לעשות משהו כמו בTWIG שהיה אפשר בתוך קובץ הHTML להשתמש בתנאים לולאות ועוד...
אולי יש רעיון יותר פשוט?

1 תשובות

avatar ענה intval ב 08 לאוקטובר 2012 #

אתה מאוד בכיוון, אבל תצטרך לדאבג בעצמך ולוודא שלכל משתנה נכנס בדיוק מה שאתה צריך.